$NG.AllReady(function (editPage, { useAction, useValuesChange, useUpdateRows, useUpdateRow, useDataIndexChange, useClick }) {
    const mstform = $NG.getCmpApi("p_form_risk_list");
    const user = $NG.getUser();
  
    ////////////////////////////////////////////////////////////--初始化逻辑--////////////////////////////////////////////////////////////
    //页面条件
    if (editPage.oType == "add" || editPage.oType == "edit" || editPage.oType == "copy") {
      getProjectInfo();
    }
  
    mstform.setHidden("bill_dt", true);
    $NG.updateState((updater) => {
      updater.data.p_form_risk_list.setProps({
        u_propose_dt: formatDate(new Date(), "yyyy-mm-dd"),
        u_put_dt: formatDate(new Date(), "yyyy-mm-dd"),
        u_sb_per: {
          label: user.userName,
          value: user.userID,
        },
        phid_dept: {
          label: user.topOrg.oName,
          value: user.topOrg.phId,
        },
      });
    });
  
    ////////////////////////////////////////////////////////////--字段变化逻辑--////////////////////////////////////////////////////////////
  
    if (editPage.oType == "add" || editPage.oType == "edit" || editPage.oType == "copy") {
      // 项目监听
      useValuesChange(({ args }) => {
        console.log("项目监听", args);
        getProjectInfo();
        // cntMFilter()
      }, "p_form_risk_list.phid_pc");
  
      //单据引用后有值的字段
      let cache = mstform.getItem("phid_pc").getValue();
      const timer = setInterval(function () {
        const phid_pc = mstform.getItem("phid_pc").getValue();
        if (phid_pc !== undefined && phid_pc !== cache) {
          //todo...后续处理表体数据逻辑
          getProjectInfo();
          cache = phid_pc;
        }
      }, 1000);
    }
    let gxrInfo = null
    const timerG = setInterval(function () {
        const gxr = mstform.getItem("u_customer_name").getValue();
        if (gxr !== undefined && gxr !== gxrInfo) {
          //todo...后续处理表体数据逻辑
          getGxrInfo();
          gxrInfo = gxr;
        }
      }, 1000);
    // // 监听干系人
    // useValuesChange(({ args }) => {
    //   console.log("干系人监听", args);
    //   getGxrInfo();
    // }, "p_form_risk_list.u_customer_name");
  
    //监听风险问题识别日期
    useValuesChange(({ args }) => {
      console.log(`监听风险问题识别日期`, args);
      if (daysBetween(args[0].u_put_dt, formatDate(new Date(), "yyyy-mm-dd"), true) < 0) {
        $NG.alert("时间不得大于当前日期！");
        $NG.updateState((updater) => {
          updater.data.p_form_risk_list.setProps({
            u_put_dt: formatDate(new Date(), "yyyy-mm-dd"),
            u_sustain_time: 0,
          });
        });
      }
  
      if (args[0].u_put_dt) {
        $NG.updateState((updater) => {
          updater.data.p_form_risk_list.setProps({
            u_sustain_time: daysBetween(mstform.getItem("u_put_dt").getValue(), formatDate(new Date(), "yyyy-mm-dd")),
          });
        });
      }
    }, "p_form_risk_list.u_put_dt");
    console.log("用户信息", user);
    // 获取项目
  
    function getProjectInfo(isReturn = false, phid = mstform.getItem("phid_pc").getValue(), fun) {
      if (!mstform.getItem("phid_pc").getValue()) return;
      try {
        setTimeout(() => {
          $NG.execServer("getPtInfoByPhid", { phid: phid }, (res) => {
            const _data = JSON.parse(res.data)[0].extendObjects;
            console.log(`获取项目信息`, _data);
            if (isReturn) {
              fun(_data);
            } else {
              $NG.updateState((updater) => {
                updater.data.p_form_risk_list.setProps({
                  u_pc_no: _data.pc_no, //项目编码
                  // 项目经理
                  phid_emp: {
                    label: _data.project_manager_name,
                    value: _data.project_manager_phid,
                  },
                  phid_org: {
                    //事业部or组织
                    value: _data.org_phid,
                    label: _data.org_name,
                  },
                  u_regional_center: {
                    //区域中心
                    value: _data.regional_center_phid,
                    label: _data.regional_center_name,
                  },
                });
              });
            }
          });
        }, 100);
      } catch (err) {
        $NG.alert("获取项目信息发生失败请检查~");
      }
    }
  
    // 干系人信息查询
    function getGxrInfo() {
      $NG.execServer("getGxrInfo", { phid: mstform.getItem("u_customer_name").getValue() }, function (res) {
        console.log("干系人信息查询", res);
        const _data = JSON.parse(res.data)[0].extendObjects;
        console.log("信息", _data);
        $NG.updateState((updater) => {
          updater.data.p_form_risk_list.setProps({
            // JIRA号
            u_jira_no: "",
            // 客户层级
            u_custom_level: _data.u_level,
            // 客户职务
            u_customer_position: _data.u_position,
            // 客户单位名称
            u_customer_unit: _data.u_customer_name,
          });
        });
      });
    }
  });
  // 格式化日期
  function formatDate(dateStr, outputFormat) {
    const date = new Date(dateStr);
  
    if (isNaN(date)) {
      return "无效的日期字符串";
    }
  
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, "0");
    const day = String(date.getDate()).padStart(2, "0");
    const hours = String(date.getHours()).padStart(2, "0");
    const minutes = String(date.getMinutes()).padStart(2, "0");
  
    let formattedDate;
  
    switch (outputFormat) {
      case "yyyy-mm-dd":
        formattedDate = `${year}-${month}-${day}`;
        break;
      case "yyyy-mm-dd HH:mm":
        formattedDate = `${year}-${month}-${day} ${hours}:${minutes}`;
        break;
      // 可以根据需要继续添加其他格式的处理逻辑
      default:
        formattedDate = "不支持的输出格式";
    }
  
    return formattedDate;
  }
  // 计算2个日期之间得天数
  function daysBetween(date1, date2, abs = false) {
    // 将日期字符串转换为 Date 对象
    const d1 = new Date(date1);
    const d2 = new Date(date2);
  
    // 检查输入是否是有效日期
    if (isNaN(d1) || isNaN(d2)) {
      throw new Error("Invalid date format. Use 'yyyy-mm-dd'.");
    }
  
    // 计算时间差（毫秒）
    const timeDiff = Math.abs(d2 - d1);
    if (abs) {
      if (d2 - d1 >= 0) {
        return 1;
      } else {
        return -1;
      }
    }
  
    // 将毫秒转换为天数
    const dayDiff = Math.ceil(timeDiff / (1000 * 60 * 60 * 24));
  
    return dayDiff;
  }
  